override & overload & object
[override的規則]
1.參數必須一樣,且它回傳的型別必須要相容
2.method的存取權不得縮小:
不能把一個public的method給override成private
[overload(過載)]
兩個有相同名稱但不一樣參數的method
規則:
2.可以改變存取的權限: 可以任意的設定overload版method的存取權限
[abstract]
有些class是不應該被初始化的,所以我們想要限制只有class的subclass才能夠被初始化;藉由標示class為abstract的,編譯器就能夠知道這個class是不能被做出實體的
->抽象的class要在宣告前面加上abstract(關鍵字),ex.
abstract class Yap extends Human{
public void eat(){}
}
->abstract的class在被extend過之前,是沒有任何用途,沒有值,也沒有目的的
->飛abstract的class我們稱之為concrete的class
->不只可以在class前加上abstract,method也是可以標示為abstract;抽象的class一定要被extend過,同理,抽象的method也一定要被extend過才能使用,ex.
public abstract void eat();
->我們不會去實作抽象的method,而只使用分號結束,因為寫抽象method的程式碼是沒有意義的